<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User extends CI_Controller{
    public $data;
	function __construct()
	{	
		parent::__construct();
		$this->load->model('user_model');
        $this->is_logged_in();
        $this->isTeacher();
        $this->isAdmin();
	}
	public function index()
	{
		$this->login();
	}
    function is_logged_in()
	{
		$is_logged_in = $this->session->userdata('logged_in');
		if(!isset($is_logged_in) || $is_logged_in != true)
		{
            return false;	
		}		
        else
        {
            return true;
        }
	}
    function isAdmin(){
        $isAdmin = $this->session->userdata('isAdmin');
        if(!isset($isAdmin) || $isAdmin != 'isAdmin')
		{
            return false;	
		}		
        else
        {
            return true;
        }
    }
    function isTeacher(){
        $isTeacher = $this->session->userdata('isTeacher');
        if(!isset($isTeacher) || $isTeacher != 'isTeacher')
		{
            return false;	
		}		
        else
        {
            return true;
        }
    }
	public function login()
	{
	   if(!$this->is_logged_in()){
            if(isset($_POST['submit']) && $_POST['submit'])
            {
            	
            	$user = $_POST['user'];
            	$pass = $_POST['password'];
            	$this->data['user_login'] = $this->user_model->check_login($user, $pass);
            	if($this->data['user_login'] == 2)
            	{
            		//dang nhap thanh cong
            		// Đây là Administrator
            		$this->data['title'] = "Administrator đã đăng nhập thành công";
            		$this->data['notice'] = $this->data['title'];
                    $set_user_sess = array(
                                        'logged_in' => $user,
                                        'isAdmin'   => 'isAdmin'
                                        );
                    $this->session->set_userdata($set_user_sess);
                    //echo($this->session->userdata('isAdmin'));
                    redirect('admin/trangchu','refresh');
            		
            	}
            	elseif($this->data['user_login'] == 1){
                    //dang nhap thanh cong
            		// Đây là Giảng viên
            		$this->data['title'] = "Giảng viên đã đăng nhập thành công";
            		$this->data['notice'] = $this->data['title'];
                    $set_user_sess = array(
                                        'logged_in' => $user,
                                        'isTeacher'   => 'isTeacher'
                                        );
                    $this->session->set_userdata($set_user_sess);
                    //echo($this->session->userdata('isTeacher'));                    
                    redirect('giangvien/giangvien','refresh');

                }elseif($this->data['user_login'] == 0){
                    //dang nhap thanh cong
            		// Đây là Sinh viên
            		$this->data['title'] = "Administrator đã đăng nhập thành công";
            		$this->data['notice'] = $this->data['title'];
                    $set_user_sess = array(
                                        'logged_in' => $user,
                                        'isTeacher' => '',
                                        'isAdmin'   => ''
                                        );
                    $this->session->set_userdata($set_user_sess);
                    //redirect
                    $url = $this->session->userdata('url');
                    if($url!=null){
                        $this->session->unset_userdata('url');
                        redirect($url,'refresh');
                        //$this->session->unset_userdata('url');
                    }else{
                        redirect('trangchu','refresh');
                    }
                }else{
            		//dang nhap that bai
            		$this->data['title'] = "Đăng nhập thất bại";
            		$this->data['notice'] = $this->data['title'];
                    $this->data['display'] = 'body_login';
                    $this->load->view('login/index',$this->data);
            	}
            }
            else
            {
            	$this->data['title'] = "Đăng nhập hệ thống";
                $this->data['display'] = 'body_login';
            	$this->load->view('login/index',$this->data);
            }
            
        }else{
            redirect('trangchu','refresh');
        }

	}
	public function register()
	{
        if(!$this->is_logged_in()){
            
    		$this->load->library('form_validation');
    		
    		$this->form_validation->set_rules('user','user','trim|required|min_length[5]|valid_user|callback_user_not_exists');
    		$this->form_validation->set_rules('password','Password','trim|required|alpha_numberic|min_length[6]|xss_clean');
    		$this->form_validation->set_rules('fullname','FullName','trim|required|min_length[8]|xss_clean');
    		if(isset($_POST['btn_register']) && $_POST['btn_register'])
            {
                $user= $_POST['user'];
                $password = $_POST['password'];
                $fullname = $_POST['fullname'];
                $ten = $_POST['ten'];
                $sdt = $_POST['sdt'];
                $email = $_POST['email'];
                $diachi = $_POST['diachi'];
                if($this->form_validation->run()==false)         
    			{
    				if($this->user_not_exists($user)==false)
                    {
                        $info = "user này đã có người sử dụng. \n Vui lòng chọn lại tên khác";
                    }
    				else
    				{
    					//$info = "Vui lòng kiểm tra lại thông tin bắt buộc - những trường có dấu (*)";
    					$info = validation_errors();
    				}
    				$this->data['info'] = $info;
    				$this->data['title'] = $info;
    				$this->data['display'] = "form_register";
    				$this->load->view('login/index',$this->data);
    			}
    			else
    			{
    				if($this->user_model->register($user, $password, $fullname,$ten,$state,$permission,$sdt,$email,$diachi)){
    					
    			
    						/*$this->data['display'] = "form_success";
    					$this->load->view('login/form_success',$this->data);*/
                        redirect('user/login','refresh');
    				}else{
    					$error = "Hệ thống đang bảo trì";
    					$this->data['title'] = $error;
    					$this->data['display'] = "error";
    					$this->load->view('login/index',$this->data);
    				}
    				
    			}
            }
            else
            {
    			$this->data['title'] = "Đăng ký tài khoản DHLA";
    			$this->data['display'] = "form_register";
    			$this->load->view('login/index',$this->data);
            }
        }else{
            redirect('trangchu',refresh);
        }		
    }
	function user_not_exists($user)
    {
        
        if($this->user_model->check_exists_user($user))
        {
            $this->form_validation->set_message('user_not_exists','user này đã có người sử dụng!');
            return false;
        }
        else
        {
            return true;
        }
    }
    public function logout()
    {
        $user_sess = $this->session->userdata('logged_in');
        if($user_sess)
        {
            
            $this->session->unset_userdata('logged_in');
            $this->session->unset_userdata('idAdmin');
            $this->session->unset_userdata('isTeacher');
            redirect('trangchu','refresh');
        }
        else
        {
            redirect('trangchu','refresh');
        }
    }
}